<?php
namespace Home\Model;

use Think\Model;

class UserModel extends Model
{
	protected $_validate = array(
		array('username','chk_require','用户名必须',1,'callback',1),
		array('username','','用户名已存在！',0,'unique',1),//用户名唯一性验证
    	array('username','chk_Name','用户名已存在',0,'callback',2),

		array('password','chk_require','密码必须',1,'callback',1),
		array('password','qrpassword','两次密码不一致',1,'confirm',3),
		array('password','chk_password','密码由8-16位字母或数字组成！',2,'callback'),
		
	    //手机号验证
	    array('phone','chk_require','手机号必须',1,'callback',1),
	    array('phone','','手机号已存在！',0,'unique',1), //手机号码唯一性验证
	    array('phone','chk_phone','手机格式错误!',1,'callback'), // 
	    // array('phone','chk_uni_phone','手机号已存在！',1,'callback',2),
     
    	//邮箱验证
	    array('email','chk_require','邮箱号必须',1,'callback',1),
	    array('emali','','邮箱已存在!',0,'unique',1), 
	    array('email', 'chk_email', '邮箱格式错误！', 1, 'callback'),
	    // array('email','chk_uni_email','邮箱已存在！',1,'callback',2),
	);



	protected $_auto = array(
		array('password','',2,'ignore'),
		array('password','encrypt',3,'callback'),//密码加密
		array('create_time','time',3,'function'),//创建时间
		array('end_time','time',3,'function'),//最后登陆时间
	);




	public function check($username,$password)
	{
		$user = $this -> where(array('username'=>$username)) -> find();//

		if(!empty($user)){
			
			if(crypt($password,md5($password)) == $user['password']){
				$save['id'] = $user['id'];
				$save['end_time'] = time();
				$this->save($save);
				// $this->where(['id'=>$data['id']])->save(['end_time'=>time()]);
				//此方法结果一样

				return $user;
			}else{
				return null;
			}
		}else{
			return null;
		}
	}

	
	
	
	

	//密码格式验证
	function chk_password($password){

        $rule = '/^\w{8,16}$/';

        if(!preg_match($rule,$password)){
            return false;
        }
    }

    //邮箱格式验证
    function chk_email($email){

    	$rule = '/^[\w\-\.]+@[\w\-\.]+(\.\w+)+$/';

    	if(!preg_match($rule,$email)){
            return false;
        }
    }

    //不为空
	function chk_require($val){

		$rule = '/\S+/';
		if(!preg_match($rule,$val)){
            return false;
        }
	}

	//手机格式验证
	function chk_phone($phone){

		$rule = '/^1([358][0-9]|4[579]|66|7[0135678]|9[89])[0-9]{8}$/';
		if(!preg_match($rule,$phone)){
            return false;
        }
	}

	//密码加密
	function encrypt($password){
		$pass = crypt($password,md5($password));
		return $pass;
	}

	//修改时用户名唯一性
	function chk_Name($username){

		$where=array('username'=>$username,'id'=>array('neq',$_GET['id']));
		$r=$this->where($where)->find();
		if($r){
			return false;
		}else{
			return true;
		}
	}

	//修改时手机唯一性
	// function chk_uni_phone($phone){

	// 	$where=array('phone'=>$phone,'id'=>array('neq',$_GET['id']));
	// 	$r=$this->where($where)->find();
	// 	if($r){
	// 		return false;
	// 	}else{
	// 		return true;
	// 	}
	// }
	//修改时邮箱唯一性
	// function chk_uni_email($email){

	// 	$where=array('email'=>$email,'id'=>array('neq',$_GET['id']));
	// 	$r=$this->where($where)->find();
	// 	if($r){
	// 		return false;
	// 	}else{
	// 		return true;
	// 	}
	// }

}
?>